# -*— coding: utf-8 -*-
# @Time: 2024/5/27 16:59
# @Author :Lin Zhou
# @Email : lin1013143@163.com
# @File : cron_expression.py
# @SoftWare: PyCharm
import re


def is_valid_cron_expression(cron_string):
    # 标准的cron表达式有5个或6个由空格分隔的字段
    # 可能的值（分钟、小时、日期、月份、星期几）都是0-9、*或?, 以及一些范围表示如1-5, 1,3,5等
    pattern = r'^((\*|[0-9]+(\-[0-9]+)?(,[0-9]+(\-[0-9]+)?)*)\s+){4,5}(\*|[0-9]+(\-[0-9]+)?(,[0-9]+(\-[0-9]+)?)*|\?)$'
    # 如果需要包含年份，可以扩展正则表达式来支持第6个字段

    # 使用正则表达式匹配
    match = re.match(pattern, cron_string)
    return bool(match)
